package jwj8508;

import java.util.Scanner;

public class J10_DoWhile {

	// do-while
	// while문과 유사한 반복문
	// while문은 조건을 먼저 검사하고 조건이 참인 경우에만 반복문을 실행하지만,
	// do-while문은 먼저 반복문을 실행하고 나중에 조건식을 검사함

	public static void main(String[] args) {
		// while vs do-while
		int i = 10;

		while (i > 10) {
			System.out.println("이 글이 보이나요?");
		}

		do {
			System.out.println("이 글이 보이나요?");
		} while (i > 10);

		// 문제 1 : 임의의 난수 5개를 출력 (1~10 사이)
		// 난수 출력시 Math 클래스의 random 메서드 이용
		int j = 0;

		do {
			// ↓ System.out.println(Math.random());
			// ↓ System.out.println(Math.random()*10);
			// ↓ System.out.println((int)(Math.random()*10));
			/* ↓ */System.out.println((int) (Math.random() * 10) + 1);
			++j;
		} while (j < 5);

		// 문제 2 : 컴퓨터 속마음 알아내기
		// 컴퓨터가 생성한 난수 맞추는 프로그램
		// 1) 사용자가 입력한 값이 난수 보다 크면 "크다" 출력
		// 2) 사용자가 입력한 값이 난수 보다 작으면 "작다" 출력
		// 3) 사용자가 입력한 값이 난수 보다 같으면 "같다" 출력

		// 프로그램 실행 순서
		// 컴퓨터가 난수 생성 -> 사용자에게 값을 하나 입력받음 -> 난수와 입력받은 값 비교하고 결과 출력
		// -> 프로그램 종료

		// v1
		int comKey; // 컴퓨터가 생성한 난수
		int userKey; // 사용자가 입력한 값

		comKey = (int) (Math.random() * 10) + 1; // 난수 생성(1~10)

		System.out.println("------컴퓨터 속마음 알아보기------v1");
		System.out.print(">> 1부터 10사이의 숫자를 하나 입력하세요 : ");
		Scanner sc = new Scanner(System.in);
		// Scanner : 간단한 문자 입력을 받기 위해 사용하는 클래스
		// System.in : 시스템에 장착된 입력장치를 의미
		// System.out : 시스템에 장착된 출력장치를 의미
		userKey = sc.nextInt(); // 사용자에게 값 입력받음

		// 난수와 입력값 비교
		if (comKey < userKey) {
			System.out.println("입력하신 값이 큽니다.");
		} else if (comKey > userKey) {
			System.out.println("입력하신 값이 작습니다.");
		} else if (comKey == userKey) {
			System.out.println("입력하신 값과 같습니다.");
		}
		System.out.println();

		// v2 : 반복 처리
		comKey = (int) (Math.random() * 10) + 1;

		System.out.println("------컴퓨터 속마음 알아보기------v2");

		do {
			System.out.print(">> 1부터 10사이의 숫자를 하나 입력하세요 : ");
			sc = new Scanner(System.in);
			userKey = sc.nextInt();
			if (comKey < userKey) {
				System.out.println("입력하신 값이 큽니다.");
			} else if (comKey > userKey) {
				System.out.println("입력하신 값이 작습니다.");
			} else {
				System.out.println("입력하신 값과 같습니다.");
				break;
			}
		} while (comKey != userKey);

	}

}
